To minimize risks and gain insight, many customers and vendors are cooperatively building prototypes and field trials, starting with simpler more restricted capabilities and gradually adding capabilities in phased steps. This can be done in stages, starting with software-only simulations, followed by hardware/software prototypes leading to the design refinements that can later be applied to a commercial system development with greatly reduced risk of unexpected and costly problems.
Software simulation of complex systems requires flexible software tools that can represent the logical systems design elements in an executable form, i.e, a Rapid Prototype. The tools are used to build a logical prototype of the system being studied. There are several kinds of simulation possible. For logical analysis of system models and protocols, a logical execution model works best. A statistical model and other mathematical models might be used for subsequent performance and reliability analysis.
The tools should support rapid creation of design elements that represent the level of logic being simulated. The prototype is recursively refined and expanded to implement the model in increasingly greater detail. This process quickly leads to deep insight about the model and problems as they are discovered.
To develop a rapid prototype, the tools should:
1) Minimize the conceptual distance between the logical model and the implementation; PA1 2) Support logical representation at any level of detail without limitations imposed by resource of language constraints; PA1 3) Retain flexibility during all phases of development; and PA1 4) Provide an interactive user interface.
This arrangement can best be described as a spiral development strategy. One way to view the spiral is to picture a problem domain as a wheel with radial spokes defining sectors that represent parts of the problem. Traversing a spiral, beginning at the center of the wheel, one encounters a small piece of each part of the problem. With each successive traversal of the spiral, the radius grows so that the path becomes longer and the level of detail, represented by the areas of the circumscribed sectors, is increased. This process allows repeated evaluations over the full scope of the problem, each time with more detail as design choices are simulated with greater precision.
Prior to the present invention, a programmer wanting to test ideas or control systems had to expend a great deal of time creating a computer model on which the problem could be simulated. Before the programmer could begin testing any of the underlying assumptions, the model needed to be nearly complete. This required that many of the detailed decisions and associated coding be in place. The present invention provides a method to rapidly start testing high level design assumptions even prior to a detailed understanding of the low level responses.
Therefore it is the objective of the present invention to provide a method to rapidly reduce programming ideas and concepts into a working model whereby the programming ideas and concepts can be tested at a high level.